package com.cn.mmd.service;

import com.cn.mmd.model.QuestionnaireStudent;
import com.cn.mmd.model.Student;
import com.cn.mmd.model.StudentApp;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2016/6/28 0028.
 */
public interface StudentService {

    /**
     * 根据id 查看学生
     * @param studentid
     * @return
     */
    Student selectByKey(String studentid);

    /**
     * 动态添加
     * @param record
     * @return
     */
    int insertSelective(Student record);

    /**
     * 根据主键删除
     * @param studentid
     * @return
     */
    int deleteByPrimaryKey(String studentid);

    /**
     * 查询根据全部
     * @return
     */
    ArrayList<Student> selectByAll();

    /**
     * 查询全部
     * @return
     */
    List<Student> selectByAllEx(String string);

    /**
     * 查询根据班级
     * @param string
     * @return
     */
    List<Student> selectByClass(String string);


    /**
     * 查询根据年级
     * @param string
     * @return
     */
    List<Student> selectByClasss(String string);

    /**
     * 根据主键查询
     * @param studentid
     * @return
     */
    Student selectByPrimaryKey(String studentid);

    /**
     * 分页查询
     * @param student
     * @return
     */
    List<Student> selectByPaging(Student student);

    /**
     * 动态修改
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(Student record);

    /**
     * 查出有多少学生
     * @param student
     * @return
     */
    int countLimitNum(Student student);
    /**
     * 查看我的基本数据
     * @param studentId
     * @return
     */
    StudentApp selectData(String studentId);

    /**
     * 添加问卷-学生关联表
     * @param questionnaireStudent
     * @return
     */
    int insertStuQues(QuestionnaireStudent questionnaireStudent);

    /**
     * 通过问卷id删除问卷-学生关联
     * @param questionnaire
     * @return
     */
    int delStuQues(int questionnaire);

    /**
     * 查询问卷-学生关联表(通过时间排序 查询未填写的问卷)
     * @param questionnaireStudent
     * @return
     */
    List<QuestionnaireStudent> selectStuQues(QuestionnaireStudent questionnaireStudent);

    /**
     * 查询与学生关联的未填写的问卷数
     * @param questionnaireStudent
     * @return
     */
    int selectCountStuQues(QuestionnaireStudent questionnaireStudent);

    /**
     * 修改问卷学生关联表状态
     * @param questionnaireStudent
     * @return
     */
    int updateState(QuestionnaireStudent questionnaireStudent);

    /**
     * 查出学生学院去重
     * @return
     */
    List<Student> selectCollegeByAll();

    /**
     * 通过查出学生专业去重
     * @return
     */
    List<Student> selectMajorByAll(String s);

    /**
     * 根据专业查看学生
     * @param student
     * @return
     */
    List<Student> selectByMa(Student student);

    /**
     * 根据学院查看学生
     * @param student
     * @return
     */
    List<Student> selectByCo(Student student);

    /**
     * 根据专业查看学生班级去重
     * @param student
     * @return
     */
    List<Student> selectByMajor(Student student);
}
